
#ifndef	__SHADERS_H__
#define __SHADERS_H__


#include "ShaderObject.h"

class cShaders {
public:
	cShaders ();
	~cShaders ();

    void	DrawQuad			(int w, int h, int tw, int th, int texTarget);
	void	DisplayTexture		(unsigned int texId, int w, int h, int texTarget);
	void	setFBOProjection		(int w, int h);
	void	restoreProjection		();
	
	ShaderObject *display;
	ShaderObject *genGI;
	ShaderObject *displayTexRect;
	ShaderObject *displayTex2D;
	ShaderObject *displayGIModel;
	ShaderObject *displayGIModelMipMap;
	ShaderObject *facialModelingAnimation;
	ShaderObject *indexation;
	ShaderObject *bodyAnimation, *bodyAnimationInstanced;
	ShaderObject *bodyAnimationInstancedShadows; // a.k.a. no textures
	ShaderObject *bodyPose;
	
	ShaderObject *reliefImpostor, *reliefImpostorGS;
	ShaderObject *skyBox;

	// LOD Shaders
	ShaderObject *VFCLodAssigment, *VFCLodAssigmentTex, *lodSelection;
	ShaderObject *drawVBO, *drawVBOTextureBuffer;

	

	int vp[4];	
};

#endif __SHADERS_H__